package com.zh.risk.quartz.ab;

import com.alibaba.fastjson.JSON;
import com.ql.util.express.DefaultContext;
import com.ql.util.express.ExpressRunner;
import com.ql.util.express.IExpressContext;
import com.zh.common.util.DateSetUtil;
import com.zh.risk.entity.RiskMerchTrans;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;

import static com.zh.risk.RiskConstants.TRANS_DB_API_NAME;

/**
 * code is far away from bug with the animal protecting
 * ┏┓　　　┏┓
 * ┏┛┻━━━┛┻┓
 * ┃　　　　　　　┃
 * ┃　　　━　　　┃
 * ┃　┳┛　┗┳　┃
 * ┃　　　　　　　┃
 * ┃　　　┻　　　┃
 * ┃　　　　　　　┃
 * ┗━┓　　　┏━┛
 * 　　┃　　　┃神兽保佑
 * 　　┃　　　┃代码无BUG！
 * 　　┃　　　┗━━━┓
 * 　　┃　　　　　　　┣┓
 * 　　┃　　　　　　　┏┛
 * 　　┗┓┓┏━┳┓┏┛
 * 　　　┃┫┫　┃┫┫
 * 　　　┗┻┛　┗┻┛
 *
 * @Description: 延迟性风控模板
 * @Author: Liard
 * @Create in: 2020/7/14 10:38
 * @Version: 1.0.1
 */
public interface GetSqlTemplateAdapter {

    /**
     * 计算频繁修改结算账户得分项
     */
    String modMrcRisk(RiskMerchTrans riskMrc) throws Exception;

    /**
     * 计算频繁修改商户简称得分项
     */
    String modMrcName(RiskMerchTrans riskMrc) throws Exception;

    /**
     * 商户登录IP地址检测
     */
    void ipCheck(RiskMerchTrans riskMrc) throws Exception;

    /**
     * 商户类型做交易金额限制
     */
    String mrcTypeAmtRisk(RiskMerchTrans riskMrc) throws Exception;

    /**
     * 交易时间异常
     */
    String transTimeErr(RiskMerchTrans riskMrc) throws Exception;

    /**
     * 累积交易金额异常
     */
    String addTransAmtErr(RiskMerchTrans riskMrc) throws Exception;

    /**
     * 交易波动幅度较大
     */
    String transFluctuate(RiskMerchTrans riskMrc) throws Exception;


}
